diff --git a/drivers/usb/host/dwc3-sti-glue.c b/drivers/usb/host/dwc3-sti-glue.c
index 660a145..deb820a 100644
--- a/drivers/usb/host/dwc3-sti-glue.c
+++ b/drivers/usb/host/dwc3-sti-glue.c
@@ -24,7 +24,7 @@
 DECLARE_GLOBAL_DATA_PTR;
 
 /*
- * struct sti_dwc3_glue_platdata - dwc3 STi glue driver private structure
+ * struct sti_dwc3_glue_plat - dwc3 STi glue driver private structure
  * @syscfg_base:	addr for the glue syscfg
  * @glue_base:		addr for the glue registers
  * @syscfg_offset:	usb syscfg control offset
@@ -32,7 +32,7 @@
  * @softreset_ctl:	reset controller for softreset signal
  * @mode:		drd static host/device config
  */
-struct sti_dwc3_glue_platdata {
+struct sti_dwc3_glue_plat {
 	phys_addr_t syscfg_base;
 	phys_addr_t glue_base;
 	phys_addr_t syscfg_offset;
@@ -41,7 +41,7 @@
 	enum usb_dr_mode mode;
 };
 
-static int sti_dwc3_glue_drd_init(struct sti_dwc3_glue_platdata *plat)
+static int sti_dwc3_glue_drd_init(struct sti_dwc3_glue_plat *plat)
 {
 	unsigned long val;
 
@@ -77,7 +77,7 @@
 	return 0;
 }
 
-static void sti_dwc3_glue_init(struct sti_dwc3_glue_platdata *plat)
+static void sti_dwc3_glue_init(struct sti_dwc3_glue_plat *plat)
 {
 	unsigned long reg;
 
@@ -102,7 +102,7 @@
 
 static int sti_dwc3_glue_of_to_plat(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
+	struct sti_dwc3_glue_plat *plat = dev_get_plat(dev);
 	struct udevice *syscon;
 	struct regmap *regmap;
 	int ret;
@@ -150,7 +150,7 @@
 
 static int sti_dwc3_glue_bind(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
+	struct sti_dwc3_glue_plat *plat = dev_get_plat(dev);
 	ofnode node, dwc3_node;
 
 	/* Find snps,dwc3 node from subnode */
@@ -175,7 +175,7 @@
 
 static int sti_dwc3_glue_probe(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
+	struct sti_dwc3_glue_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	/* deassert both powerdown and softreset */
@@ -216,7 +216,7 @@
 
 static int sti_dwc3_glue_remove(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
+	struct sti_dwc3_glue_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	/* assert both powerdown and softreset */
@@ -246,6 +246,6 @@
 	.probe = sti_dwc3_glue_probe,
 	.remove = sti_dwc3_glue_remove,
 	.bind = sti_dwc3_glue_bind,
-	.plat_auto	= sizeof(struct sti_dwc3_glue_platdata),
+	.plat_auto	= sizeof(struct sti_dwc3_glue_plat),
 	.flags = DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c
index 22a35a5..fba3595 100644
--- a/drivers/usb/host/ehci-atmel.c
+++ b/drivers/usb/host/ehci-atmel.c
@@ -124,7 +124,7 @@
 	.probe		= ehci_atmel_probe,
 	.remove		= ehci_deregister,
 	.ops		= &ehci_usb_ops,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct ehci_atmel_priv),
 	.flags		= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
index 690a96c..fda04c4 100644
--- a/drivers/usb/host/ehci-exynos.c
+++ b/drivers/usb/host/ehci-exynos.c
@@ -26,8 +26,8 @@
 /* Declare global data pointer */
 DECLARE_GLOBAL_DATA_PTR;
 
-struct exynos_ehci_platdata {
-	struct usb_platdata usb_plat;
+struct exynos_ehci_plat {
+	struct usb_plat usb_plat;
 	fdt_addr_t hcd_base;
 	fdt_addr_t phy_base;
 	struct gpio_desc vbus_gpio;
@@ -45,7 +45,7 @@
 
 static int ehci_usb_of_to_plat(struct udevice *dev)
 {
-	struct exynos_ehci_platdata *plat = dev_get_plat(dev);
+	struct exynos_ehci_plat *plat = dev_get_plat(dev);
 	const void *blob = gd->fdt_blob;
 	unsigned int node;
 	int depth;
@@ -214,7 +214,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct exynos_ehci_platdata *plat = dev_get_plat(dev);
+	struct exynos_ehci_plat *plat = dev_get_plat(dev);
 	struct exynos_ehci *ctx = dev_get_priv(dev);
 	struct ehci_hcor *hcor;
 
@@ -259,6 +259,6 @@
 	.remove = ehci_usb_remove,
 	.ops	= &ehci_usb_ops,
 	.priv_auto	= sizeof(struct exynos_ehci),
-	.plat_auto	= sizeof(struct exynos_ehci_platdata),
+	.plat_auto	= sizeof(struct exynos_ehci_plat),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index dfeca89..8e79bdd 100644
--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -145,7 +145,7 @@
 	.probe = ehci_fsl_probe,
 	.remove = ehci_deregister,
 	.ops	= &ehci_usb_ops,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct ehci_fsl_priv),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ehci-marvell.c b/drivers/usb/host/ehci-marvell.c
index f9e24b9..3ecbfd0 100644
--- a/drivers/usb/host/ehci-marvell.c
+++ b/drivers/usb/host/ehci-marvell.c
@@ -152,7 +152,7 @@
 	.probe = ehci_mvebu_probe,
 	.remove = ehci_deregister,
 	.ops	= &ehci_usb_ops,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct ehci_mvebu_priv),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ehci-msm.c b/drivers/usb/host/ehci-msm.c
index a3405d0..d160cf0 100644
--- a/drivers/usb/host/ehci-msm.c
+++ b/drivers/usb/host/ehci-msm.c
@@ -47,7 +47,7 @@
 {
 	struct msm_ehci_priv *p = dev_get_priv(dev);
 	struct usb_ehci *ehci = p->ehci;
-	struct usb_platdata *plat = dev_get_plat(dev);
+	struct usb_plat *plat = dev_get_plat(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
 	int ret;
@@ -145,6 +145,6 @@
 	.remove = ehci_usb_remove,
 	.ops	= &ehci_usb_ops,
 	.priv_auto	= sizeof(struct msm_ehci_priv),
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ehci-mx5.c b/drivers/usb/host/ehci-mx5.c
index 970bbe9..0486263 100644
--- a/drivers/usb/host/ehci-mx5.c
+++ b/drivers/usb/host/ehci-mx5.c
@@ -287,7 +287,7 @@
 
 static int ehci_usb_of_to_plat(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_plat(dev);
+	struct usb_plat *plat = dev_get_plat(dev);
 	const char *mode;
 
 	mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "dr_mode", NULL);
@@ -305,7 +305,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_plat(dev);
+	struct usb_plat *plat = dev_get_plat(dev);
 	struct usb_ehci *ehci = dev_read_addr_ptr(dev);
 	struct ehci_mx5_priv_data *priv = dev_get_priv(dev);
 	enum usb_init_type type = plat->init_type;
@@ -367,7 +367,7 @@
 	.probe	= ehci_usb_probe,
 	.remove = ehci_deregister,
 	.ops	= &ehci_usb_ops,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct ehci_mx5_priv_data),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
index 628081a..65ebd7c 100644
--- a/drivers/usb/host/ehci-mx6.c
+++ b/drivers/usb/host/ehci-mx6.c
@@ -472,7 +472,7 @@
 
 static int ehci_usb_phy_mode(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_plat(dev);
+	struct usb_plat *plat = dev_get_plat(dev);
 	void *__iomem addr = dev_read_addr_ptr(dev);
 	void *__iomem phy_ctrl, *__iomem phy_status;
 	const void *blob = gd->fdt_blob;
@@ -520,7 +520,7 @@
 
 static int ehci_usb_of_to_plat(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_plat(dev);
+	struct usb_plat *plat = dev_get_plat(dev);
 	enum usb_dr_mode dr_mode;
 
 	dr_mode = usb_get_dr_mode(dev->node);
@@ -579,7 +579,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_plat(dev);
+	struct usb_plat *plat = dev_get_plat(dev);
 	struct usb_ehci *ehci = dev_read_addr_ptr(dev);
 	struct ehci_mx6_priv_data *priv = dev_get_priv(dev);
 	enum usb_init_type type = plat->init_type;
@@ -650,7 +650,7 @@
 	.probe	= ehci_usb_probe,
 	.remove = ehci_deregister,
 	.ops	= &ehci_usb_ops,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct ehci_mx6_priv_data),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index 58a9a1d..cb50bf3 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -368,7 +368,7 @@
 
 static int ehci_usb_of_to_plat(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_plat(dev);
+	struct usb_plat *plat = dev_get_plat(dev);
 
 	plat->init_type = USB_INIT_HOST;
 
@@ -377,7 +377,7 @@
 
 static int omap_ehci_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_plat(dev);
+	struct usb_plat *plat = dev_get_plat(dev);
 	struct ehci_omap_priv_data *priv = dev_get_priv(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
@@ -403,7 +403,7 @@
 	.of_match = omap_ehci_dt_ids,
 	.probe = omap_ehci_probe,
 	.of_to_plat = ehci_usb_of_to_plat,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct ehci_omap_priv_data),
 	.remove = ehci_deregister,
 	.ops	= &ehci_usb_ops,
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index 61f5a6c..4f711de 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -163,7 +163,7 @@
 	.remove = ehci_pci_remove,
 	.of_match = ehci_pci_ids,
 	.ops	= &ehci_usb_ops,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct ehci_pci_priv),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index c16eec3..b02ee89 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -828,7 +828,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_plat(dev);
+	struct usb_plat *plat = dev_get_plat(dev);
 	struct fdt_usb *priv = dev_get_priv(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
@@ -865,7 +865,7 @@
 	.probe = ehci_usb_probe,
 	.remove = ehci_deregister,
 	.ops	= &ehci_usb_ops,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct fdt_usb),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ehci-vf.c b/drivers/usb/host/ehci-vf.c
index a517c61..e0e4f84 100644
--- a/drivers/usb/host/ehci-vf.c
+++ b/drivers/usb/host/ehci-vf.c
@@ -312,7 +312,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_plat(dev);
+	struct usb_plat *plat = dev_get_plat(dev);
 	struct ehci_vf_priv_data *priv = dev_get_priv(dev);
 	struct usb_ehci *ehci = priv->ehci;
 	struct ehci_hccr *hccr;
@@ -355,7 +355,7 @@
 	.remove = ehci_deregister,
 	.ops = &ehci_usb_ops,
 	.of_to_plat = vf_usb_of_to_plat,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct ehci_vf_priv_data),
 	.flags = DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ehci-zynq.c b/drivers/usb/host/ehci-zynq.c
index 6756465..f7e458c 100644
--- a/drivers/usb/host/ehci-zynq.c
+++ b/drivers/usb/host/ehci-zynq.c
@@ -34,7 +34,7 @@
 
 static int ehci_zynq_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_plat(dev);
+	struct usb_plat *plat = dev_get_plat(dev);
 	struct zynq_ehci_priv *priv = dev_get_priv(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
@@ -85,7 +85,7 @@
 	.probe = ehci_zynq_probe,
 	.remove = ehci_deregister,
 	.ops	= &ehci_usb_ops,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct zynq_ehci_priv),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/ohci-pci.c b/drivers/usb/host/ohci-pci.c
index c53b6f5..6ddc9da 100644
--- a/drivers/usb/host/ohci-pci.c
+++ b/drivers/usb/host/ohci-pci.c
@@ -39,7 +39,7 @@
 	.remove = ohci_pci_remove,
 	.of_match = ohci_pci_ids,
 	.ops	= &ohci_usb_ops,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(ohci_t),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/usb-uclass.c b/drivers/usb/host/usb-uclass.c
index 94ce9a6..decee61 100644
--- a/drivers/usb/host/usb-uclass.c
+++ b/drivers/usb/host/usb-uclass.c
@@ -389,7 +389,7 @@
 
 int usb_setup_ehci_gadget(struct ehci_ctrl **ctlrp)
 {
-	struct usb_platdata *plat;
+	struct usb_plat *plat;
 	struct udevice *dev;
 	int ret;
 
@@ -566,7 +566,7 @@
 		const struct usb_device_id *id;
 		struct udevice *dev;
 		const struct driver *drv;
-		struct usb_dev_platdata *plat;
+		struct usb_dev_plat *plat;
 
 		for (id = entry->match; id->match_flags; id++) {
 			if (!usb_match_one_id(desc, iface, id))
@@ -622,7 +622,7 @@
 	for (device_find_first_child(parent, &dev);
 	     dev;
 	     device_find_next_child(&dev)) {
-		struct usb_dev_platdata *plat = dev_get_parent_plat(dev);
+		struct usb_dev_plat *plat = dev_get_parent_plat(dev);
 
 		/* If this device is already in use, skip it */
 		if (device_active(dev))
@@ -643,7 +643,7 @@
 {
 	struct udevice *dev;
 	bool created = false;
-	struct usb_dev_platdata *plat;
+	struct usb_dev_plat *plat;
 	struct usb_bus_priv *priv;
 	struct usb_device *parent_udev;
 	int ret;
@@ -770,7 +770,7 @@
 
 static int usb_child_post_bind(struct udevice *dev)
 {
-	struct usb_dev_platdata *plat = dev_get_parent_plat(dev);
+	struct usb_dev_plat *plat = dev_get_parent_plat(dev);
 	int val;
 
 	if (!dev_of_valid(dev))
@@ -809,7 +809,7 @@
 int usb_child_pre_probe(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct usb_dev_platdata *plat = dev_get_parent_plat(dev);
+	struct usb_dev_plat *plat = dev_get_parent_plat(dev);
 	int ret;
 
 	if (plat->udev) {
@@ -854,7 +854,7 @@
 	.per_device_auto	= sizeof(struct usb_bus_priv),
 	.child_post_bind = usb_child_post_bind,
 	.child_pre_probe = usb_child_pre_probe,
-	.per_child_plat_auto	= sizeof(struct usb_dev_platdata),
+	.per_child_plat_auto	= sizeof(struct usb_dev_plat),
 };
 
 UCLASS_DRIVER(usb_dev_generic) = {
diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c
index 31e4265..27c4bbf 100644
--- a/drivers/usb/host/xhci-brcm.c
+++ b/drivers/usb/host/xhci-brcm.c
@@ -22,7 +22,7 @@
 #define USBAXI_SA_UA_MASK	(USBAXI_UA_MASK | USBAXI_SA_MASK)
 #define USBAXI_SA_UA_VAL	(USBAXI_UA_VAL | USBAXI_SA_VAL)
 
-struct brcm_xhci_platdata {
+struct brcm_xhci_plat {
 	unsigned int arcache;
 	unsigned int awcache;
 	void __iomem *hc_base;
@@ -30,7 +30,7 @@
 
 static int xhci_brcm_probe(struct udevice *dev)
 {
-	struct brcm_xhci_platdata *plat = dev_get_plat(dev);
+	struct brcm_xhci_plat *plat = dev_get_plat(dev);
 	struct xhci_hcor *hcor;
 	struct xhci_hccr *hcd;
 	int len, ret = 0;
@@ -71,7 +71,7 @@
 
 static int xhci_brcm_deregister(struct udevice *dev)
 {
-	struct brcm_xhci_platdata *plat = dev_get_plat(dev);
+	struct brcm_xhci_plat *plat = dev_get_plat(dev);
 
 	/* Restore the default values for AXI read and write attributes */
 	writel(plat->awcache, plat->hc_base + DRD2U3H_XHC_REGS_AXIWRA);
@@ -92,7 +92,7 @@
 	.remove				= xhci_brcm_deregister,
 	.ops				= &xhci_usb_ops,
 	.of_match			= xhci_brcm_ids,
-	.plat_auto	= sizeof(struct brcm_xhci_platdata),
+	.plat_auto	= sizeof(struct brcm_xhci_plat),
 	.priv_auto		= sizeof(struct xhci_ctrl),
 	.flags				= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index f6534a2..59408e4 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -20,7 +20,7 @@
 #include <linux/usb/dwc3.h>
 #include <linux/usb/otg.h>
 
-struct xhci_dwc3_platdata {
+struct xhci_dwc3_plat {
 	struct phy_bulk phys;
 };
 
@@ -117,7 +117,7 @@
 	struct xhci_hccr *hccr;
 	struct dwc3 *dwc3_reg;
 	enum usb_dr_mode dr_mode;
-	struct xhci_dwc3_platdata *plat = dev_get_plat(dev);
+	struct xhci_dwc3_plat *plat = dev_get_plat(dev);
 	const char *phy;
 	u32 reg;
 	int ret;
@@ -167,7 +167,7 @@
 
 static int xhci_dwc3_remove(struct udevice *dev)
 {
-	struct xhci_dwc3_platdata *plat = dev_get_plat(dev);
+	struct xhci_dwc3_plat *plat = dev_get_plat(dev);
 
 	dwc3_shutdown_phy(dev, &plat->phys);
 
@@ -187,7 +187,7 @@
 	.remove = xhci_dwc3_remove,
 	.ops = &xhci_usb_ops,
 	.priv_auto	= sizeof(struct xhci_ctrl),
-	.plat_auto	= sizeof(struct xhci_dwc3_platdata),
+	.plat_auto	= sizeof(struct xhci_dwc3_plat),
 	.flags = DM_FLAG_ALLOC_PRIV_DMA,
 };
 #endif
diff --git a/drivers/usb/host/xhci-exynos5.c b/drivers/usb/host/xhci-exynos5.c
index fe804a0..9893a8c 100644
--- a/drivers/usb/host/xhci-exynos5.c
+++ b/drivers/usb/host/xhci-exynos5.c
@@ -34,7 +34,7 @@
 /* Declare global data pointer */
 DECLARE_GLOBAL_DATA_PTR;
 
-struct exynos_xhci_platdata {
+struct exynos_xhci_plat {
 	fdt_addr_t hcd_base;
 	fdt_addr_t phy_base;
 	struct gpio_desc vbus_gpio;
@@ -45,7 +45,7 @@
  * for the usb controller.
  */
 struct exynos_xhci {
-	struct usb_platdata usb_plat;
+	struct usb_plat usb_plat;
 	struct xhci_ctrl ctrl;
 	struct exynos_usb3_phy *usb3_phy;
 	struct xhci_hccr *hcd;
@@ -54,7 +54,7 @@
 
 static int xhci_usb_of_to_plat(struct udevice *dev)
 {
-	struct exynos_xhci_platdata *plat = dev_get_plat(dev);
+	struct exynos_xhci_plat *plat = dev_get_plat(dev);
 	const void *blob = gd->fdt_blob;
 	unsigned int node;
 	int depth;
@@ -205,7 +205,7 @@
 
 static int xhci_usb_probe(struct udevice *dev)
 {
-	struct exynos_xhci_platdata *plat = dev_get_plat(dev);
+	struct exynos_xhci_plat *plat = dev_get_plat(dev);
 	struct exynos_xhci *ctx = dev_get_priv(dev);
 	struct xhci_hcor *hcor;
 	int ret;
@@ -255,7 +255,7 @@
 	.probe = xhci_usb_probe,
 	.remove = xhci_usb_remove,
 	.ops	= &xhci_usb_ops,
-	.plat_auto	= sizeof(struct exynos_xhci_platdata),
+	.plat_auto	= sizeof(struct exynos_xhci_plat),
 	.priv_auto	= sizeof(struct exynos_xhci),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/xhci-fsl.c b/drivers/usb/host/xhci-fsl.c
index e54db0f..f062f12 100644
--- a/drivers/usb/host/xhci-fsl.c
+++ b/drivers/usb/host/xhci-fsl.c
@@ -169,7 +169,7 @@
 	.probe = xhci_fsl_probe,
 	.remove = xhci_fsl_remove,
 	.ops	= &xhci_usb_ops,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct xhci_fsl_priv),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/xhci-mvebu.c b/drivers/usb/host/xhci-mvebu.c
index 017f99b..46b89de 100644
--- a/drivers/usb/host/xhci-mvebu.c
+++ b/drivers/usb/host/xhci-mvebu.c
@@ -15,7 +15,7 @@
 
 #include <usb/xhci.h>
 
-struct mvebu_xhci_platdata {
+struct mvebu_xhci_plat {
 	fdt_addr_t hcd_base;
 };
 
@@ -25,7 +25,7 @@
  */
 struct mvebu_xhci {
 	struct xhci_ctrl ctrl;	/* Needs to come first in this struct! */
-	struct usb_platdata usb_plat;
+	struct usb_plat usb_plat;
 	struct xhci_hccr *hcd;
 };
 
@@ -40,7 +40,7 @@
 
 static int xhci_usb_probe(struct udevice *dev)
 {
-	struct mvebu_xhci_platdata *plat = dev_get_plat(dev);
+	struct mvebu_xhci_plat *plat = dev_get_plat(dev);
 	struct mvebu_xhci *ctx = dev_get_priv(dev);
 	struct xhci_hcor *hcor;
 	int len, ret;
@@ -67,7 +67,7 @@
 
 static int xhci_usb_of_to_plat(struct udevice *dev)
 {
-	struct mvebu_xhci_platdata *plat = dev_get_plat(dev);
+	struct mvebu_xhci_plat *plat = dev_get_plat(dev);
 
 	/*
 	 * Get the base address for XHCI controller from the device node
@@ -96,7 +96,7 @@
 	.probe = xhci_usb_probe,
 	.remove = xhci_deregister,
 	.ops	= &xhci_usb_ops,
-	.plat_auto	= sizeof(struct mvebu_xhci_platdata),
+	.plat_auto	= sizeof(struct mvebu_xhci_plat),
 	.priv_auto	= sizeof(struct mvebu_xhci),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 96d1de6..2b445f2 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -59,7 +59,7 @@
 	.remove = xhci_deregister,
 	.of_match = xhci_pci_ids,
 	.ops	= &xhci_usb_ops,
-	.plat_auto	= sizeof(struct usb_platdata),
+	.plat_auto	= sizeof(struct usb_plat),
 	.priv_auto	= sizeof(struct xhci_ctrl),
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
diff --git a/drivers/usb/host/xhci-rcar.c b/drivers/usb/host/xhci-rcar.c
index dc941a2..5fc7afb 100644
--- a/drivers/usb/host/xhci-rcar.c
+++ b/drivers/usb/host/xhci-rcar.c
@@ -29,7 +29,7 @@
 #define RCAR_USB3_DL_CTRL_FW_SUCCESS	BIT(4)
 #define RCAR_USB3_DL_CTRL_FW_SET_DATA0	BIT(8)
 
-struct rcar_xhci_platdata {
+struct rcar_xhci_plat {
 	fdt_addr_t	hcd_base;
 	struct clk	clk;
 };
@@ -40,7 +40,7 @@
  */
 struct rcar_xhci {
 	struct xhci_ctrl ctrl;	/* Needs to come first in this struct! */
-	struct usb_platdata usb_plat;
+	struct usb_plat usb_plat;
 	struct xhci_hccr *hcd;
 };
 
@@ -76,7 +76,7 @@
 
 static int xhci_rcar_probe(struct udevice *dev)
 {
-	struct rcar_xhci_platdata *plat = dev_get_plat(dev);
+	struct rcar_xhci_plat *plat = dev_get_plat(dev);
 	struct rcar_xhci *ctx = dev_get_priv(dev);
 	struct xhci_hcor *hcor;
 	int len, ret;
@@ -122,7 +122,7 @@
 static int xhci_rcar_deregister(struct udevice *dev)
 {
 	int ret;
-	struct rcar_xhci_platdata *plat = dev_get_plat(dev);
+	struct rcar_xhci_plat *plat = dev_get_plat(dev);
 
 	ret = xhci_deregister(dev);
 
@@ -134,7 +134,7 @@
 
 static int xhci_rcar_of_to_plat(struct udevice *dev)
 {
-	struct rcar_xhci_platdata *plat = dev_get_plat(dev);
+	struct rcar_xhci_plat *plat = dev_get_plat(dev);
 
 	plat->hcd_base = dev_read_addr(dev);
 	if (plat->hcd_base == FDT_ADDR_T_NONE) {
@@ -161,7 +161,7 @@
 	.ops		= &xhci_usb_ops,
 	.of_match	= xhci_rcar_ids,
 	.of_to_plat = xhci_rcar_of_to_plat,
-	.plat_auto	= sizeof(struct rcar_xhci_platdata),
+	.plat_auto	= sizeof(struct rcar_xhci_plat),
 	.priv_auto	= sizeof(struct rcar_xhci),
 	.flags		= DM_FLAG_ALLOC_PRIV_DMA,
 };
